package es.wtestgen.action.alumno;

import java.sql.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import es.wtestgen.action.WTestGenAction;
import es.wtestgen.bean.profesor.ExamenResueltoForm;
import es.wtestgen.domain.Alumno;
import es.wtestgen.domain.Examen;
import es.wtestgen.domain.ExamenResuelto;
import es.wtestgen.domain.Respuesta;
import es.wtestgen.services.ExamenDAO;

public class TareasAction extends WTestGenAction {

	@Override
	public ActionForward _execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		log.info("_____Mantenimiento de tareas:::::");	
		String accion = request.getParameter("accion");
		ActionForward forward = null;
		
		if(accion == null || accion.equals("")){
			forward = listar(mapping, form, request, response);
		}else if(accion.equals("corregir")){
			forward = corregir(mapping, form, request, response);
		}

		return forward;
	}

	private ActionForward corregir(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		
		/*
		 * Para recuperar el alumno
		 */
		Alumno alumno = (Alumno)request.getSession().getAttribute("usuario");
		
		ExamenResueltoForm examenResueltoForm = (ExamenResueltoForm)form;
		
		String codExam = (String)request.getParameter("codExam");
		
		Examen examen = new Examen();
		ExamenResuelto examenResuelto = new ExamenResuelto();
		
		ExamenDAO examenDao = new ExamenDAO();
		
		Set<Respuesta> respuestasResu = new HashSet<Respuesta>();
		
		examen = (Examen)examenDao.findById(codExam).get(0);
		
		examenResuelto.setAlumno(alumno);
		examenResuelto.setExamen(examen);
		
		/*
		 * Establecemos la fecha actual como fecha de resolucion de examen
		 */
		
		GregorianCalendar calendar = new GregorianCalendar();
		long milisegundos = calendar.getTimeInMillis();
		Date date = new Date(milisegundos);
		int anyo = date.getYear()+1900;
		int mes = date.getMonth()+1;
		int dia = date.getDate();
		String d = "";
		String m = "";
		if(dia > 0 && dia < 10){
			d = "0" + String.valueOf(dia);
		}else{
			d = String.valueOf(dia);
		}
		if(mes > 0 && mes < 10){
			m = "0" + String.valueOf(mes);				
		}else{
			m = String.valueOf(mes);
		}
		String fechaExamResu = d + "/" + m + "/" + String.valueOf(anyo);
		
		examenResuelto.setFechaExamResu(fechaExamResu);
		respuestasResu = examenResueltoForm.getRespuestas();
		
		return mapping.findForward("entradaAlumnos");
	}

	private ActionForward listar(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		
		return mapping.findForward("entradaAlumnos");
	}
	

}
